package banque;

public abstract class Compte {
	
	private String nom;
    private int numero;
    private double solde;
    private double plafond;
    private double montantInitial;
    private double minOperationCredit;
    private double decouvert;
    private boolean possibiliteRetrait;
    
    
    public Compte(String nom, int numero, double solde, double plafond,
			double montantInitial, double minOperationCredit, double decouvert,
			boolean possibiliteRetrait) {
		super();
		this.nom = nom;
		this.numero = numero;
		this.solde = solde;
		this.plafond = plafond;
		this.montantInitial = montantInitial;
		this.minOperationCredit = minOperationCredit;
		this.decouvert = decouvert;
		this.possibiliteRetrait = possibiliteRetrait;
	}

	public void afficherSolde(){
		System.out.println("Solde :"+this.solde);
	}
    
    public void crediterCompte(int montant){
    	this.solde+=montant;
    }
    
    public abstract void debiterCompte(int montant);
    /*{
    	if(this.possibiliteRetrait){
    		
    	}
    	this.solde+=montant;
    }*/

}
/*public abstract transfererVers(Compte target, double courant );
	// non instanciable => à redefinir dans la classe fille, sinon classe fille est aussi abstraite
	public abstract boolean debiter(double m);

 * 
 * Une fois les getters et setters definis dans la classe abstraite plus besoin de les redefinir!
 */
// Dans une interface toute methode est forcemment public abstract
// Aucun attribut dans une interface contrairement à une classe abstraite !
/*
 * public Interface Compte {
	

	public abstract transfererVers(Compte target, double courant );
	
	public abstract boolean debiter(double m);

}

 */